home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 34.zip / BS1 part 34 / FredFish PD 314.adf / Zc / zcsrc.lzh / IOLib / stdio / fseek.c < prev    next >
C/C++ Source or Header  |  1989-05-14  |  612b  |  39 lines

  1. #include <stdio.h>
  2. #include <errno.h>
  3.  
  4. extern long lseek();
  5.  
  6. long ftell(fp)
  7.     register FILE *fp;
  8.     {
  9.     register long rv;
  10.  
  11.     fflush(fp);
  12.     rv = lseek(fp->_file, 0L, 1);
  13.     return((rv < 0) ? ((errno = ((int) rv)), (-1)) : rv);
  14.     }
  15.  
  16. int fseek(fp, offset, origin)
  17.     register FILE *fp;
  18.     long offset;
  19.     int origin;
  20.     {
  21.     register long rv;
  22.  
  23.     fflush(fp);
  24.     rv = lseek(fp->_file, offset, origin);
  25.     return((rv < 0) ? ((errno = ((int) rv)), (-1)) : 0);
  26.     }
  27.  
  28. void rewind(fp)
  29.     register FILE *fp;
  30.     {
  31.     register long rv;
  32.  
  33.     fflush(fp);
  34.     rv = lseek(fp->_file, 0L, SEEK_SET);
  35.     if(rv < 0)
  36.         errno = ((int) rv);
  37.     fp->_flag &= ~(_IOEOF|_IOERR);
  38.     }
  39.